#ifndef GEAR_H
#define GEAR_H

#include "lvgl/lvgl.h"
#include <stdio.h>

// 档位枚举
typedef enum {
    GEAR_P, // P档(驻车)
    GEAR_R, // R档(倒车)
    GEAR_N, // N档(空档)
    GEAR_D, // D档(前进)
    GEAR_S  // S档(运动模式)
} Gear;

// 档位名称数组
extern const char *gear_names[];

// 档位UI对象数组
extern lv_obj_t *gear_ui_objects[];

// 当前档位状态
extern Gear current_gear;

/**
 * @brief 初始化档位UI组件
 */
void init_gear_ui();

/**
 * @brief 处理档位切换
 * @param new_gear 新档位
 */
void handle_gear_change(Gear new_gear);

/**
 * @brief 获取当前档位
 * @return 当前档位枚举值
 */
Gear get_current_gear();

/**
 * @brief 获取当前档位名称
 * @return 档位名称字符串
 */
const char *get_current_gear_name();

#endif // GEAR_H